Plan
-
Qu'est-ce que le javascript ?
- [o] usage back / front
- [/] historique javascript(cf lien in ref)
- mono-thread
- mémoire / heap / stack
- types (string / number / boolean ...)
- variables
- pointeur / référence
- global / const / let / var
- objects
- array (les array sont des objects)
- function / array function
- scope
- hoisting
- prototype
- class
- héritage
- private property
- destructuration des objects et des arrays
- utils
- Object.*
- Array.*
- boucles
- for
- for in
- for of
- foreach / map / mapflat / reduce / filter
- asynchrone
- callback
- then
- await / async
-
immutabilité
Ressources
Langage compilé ou interprété ?
Qu'est-ce que le JavaScript ?
Le javascript est le langage qui permet d'écrire des scripts (programmes) pour rendre les pages web dynamique a partir du navigateur. Le JS est un langage interprété
Initialement, il n'était disponible que sur les navigateurs. On peut maintenant l'utiliser sur les serveurs grâce à Node.js. De manière générale, on peut l'utiliser sur toutes les machines qui ont un Javascript Engine.
Le Javascript est un langage de haut-niveau. Il n'est pas possible de gérer la mémoire et le CPU comme en C.
Pourquoi le JavaScript s'appelle JavaScript ?
Lors qu'il a été développé par Brendan Eich pour le compte de Netscape, en 10 jours, en décembre 1995, le langage s'appelait Mocha comme le café mochaccino et futur framework de test JS. Il a été ensuite renommé LiveScript puis JavaScript.
Le renommage en JavaScript a été un mouvement marketing pour surfer sur la vague de Java qui avait alors un ans et importe croissance.
https://web.archive.org/web/20020606002913/https://wp.netscape.com/newsref/pr/newsrelease67.html
Qu'est-ce que ECMAScript ?
ECMAScript est la standard sur laquelle sont basé le JavaScript et ActionScript.
ECMAScript est standardisé par ECMA International grâce aux spécifications ECMA-262 et ECMA-402. ECMA est les initiale de European Computer Manufacturers Association.
#todo exemple de feature intégrer dans les versions
#TODO expliquer le numérotage des versions
Importance du standard
- Compatibilité: le standard permet une compatibilité entre les différents navigateurs et environnement.
- Innovation: ecma évolue constamment afin de prendre en compte les besoins moderne du développement web.
Qu'est-ce que ES15, ES17 ... ?
ECMASCRIPT est un langage qui évolue. Il est versionné et chaque version apporte de nouvelles features.
Par example
Que peux-t-on faire avec le JavaScript dans le navigateur ?
Ce que l'on peut en JavaScript dépend fortement de l'endroit il est exécuté.
Sur le navigateur, les fonctions du JS sont limité afin de sécurisé l'utilisateur.
Les capacités du JS y sont limitées à la manipulation de la page web, à l'interaction avec l'utilisateur et le serveur.
Par example, il peut:
- Ajouter / Supprimer / Modifier l'HTML de la page
- Changer le style
- Réagir aux réactions de l'utilisateur
- Créer et récupérer des cookies
- Utiliser le local storage
global variable vs local variable
- variables globales
- Comment les déclarer ?
- implicite global = truc vs explicite window.global = truc
- préférer utiliser les module à la place
- Exemple d’utilisation avec la dev tool
- var
- Scope
- Pourquoi on a besoin const / let ?
- Problème avec les boucles for
- const / let
- Scope
- Usage